A service provider may provide remote computing resources available over the Internet or other network for use by customers for various information processing needs. An individual customer may request and have allocated processing resources, storage resources, database resources, communication resources, and the like. The computing resources may be allocated for continuous use by the customer or for a specific period of time. The number, type, size, and configuration of the requested computing resources may vary by application. For example, a university may require a large number of processing resources for a few hours to solve a complex mathematical problem, while an online merchant may require highly-available web services that the merchant may scale up or down on a real-time basis to coincide with the demand for a new product being made available for purchase online.
The service provider may provide computing resources in different types, sizes, and configurations to meet the various demands of its customers. In addition, the service provider may provide an application programming interface (“API”), such as a web service, that allows the customer to allocate and manage the various, available computing resources on-demand. Allowing on-demand allocation of remote computing resources may eliminate the need for the customer to make large and expensive hardware purchases and reduces the need of customers to forecast future resources requirements or network traffic, because the customer is able to immediately deal with changes in requirements or spikes in popularity related to their application or service. However, because availability of the computing resources is not within the customer's control, the requested resources may not always be available in the amount or at the time that the customer requires.
It is with respect to these and other considerations that the disclosure made herein is presented.